Application streaming is a method of software distribution in which a client downloads and executes some of an application's executable code and associated resources. As the application executes, additional code and resources are downloaded as needed. Correctly predicting which application code and resources will subsequently be required by an application can reduce delays associated with program execution.